#include "e2d/yml/render/Serializer.h"

using Serializer = e2d::BasicSerializer;

template<>
 void Serializer::Encode<e2d::SkinnedMeshRender>(YAML::Node& node, const e2d::SkinnedMeshRender& inst)
{
	Encode<e2d::Object>(node, inst);
	SetVariable<e2d::EntityMap>(node, "m_RootNode", inst.m_RootNode);
	SetVariable<e2d::MaterialViewMap>(node, "m_MaterialViewMap", inst.m_MaterialView);
	SetVariable<e2d::SkinnedMeshMap>(node, "m_MeshIndex", inst.m_MeshMap);
	SetVariable<e2d::BoneFileMap>(node, "m_BoneIndex", inst.m_BoneFileMap);


}


template<>
 bool Serializer::Decode<e2d::SkinnedMeshRender>(const YAML::Node& node, e2d::SkinnedMeshRender& inst)
{

	Decode<e2d::Object>(node, inst);
	GetVariable<e2d::EntityMap>(node, "m_RootNode", inst.m_RootNode);
	GetVariable<e2d::MaterialViewMap>(node, "m_MaterialViewMap", inst.m_MaterialView);
	GetVariable<e2d::SkinnedMeshMap>(node, "m_MeshIndex", inst.m_MeshMap);
	GetVariable<e2d::BoneFileMap>(node, "m_BoneIndex", inst.m_BoneFileMap);

	return true;
}
